It is known that a provider of a computing system service will typically utilize a server cluster (a computing system with multiple servers) to host one or more applications. It is also known that organizations such as corporations will also utilize a server cluster to run one or more applications. Such computing systems that host/run such applications may be collocated or distributed across a network, e.g., the Internet or an intranet.
By way of example, a server cluster may host a so-called “transactional application.” An example of a transactional application may be a stock trading application wherein the application is executed across multiple servers that are used to process client requests (e.g., stock trade transactions). Another example of a financial transaction-based application may be a banking application. In the case of a transactional application, a dispatch router typically controls the flow of the client requests to the individual servers of the server cluster.
A server cluster may also host a so-called “parallel application.” An example of a parallel application is a computationally-intensive scientific or mathematical application wherein the application is executed across multiple servers that are used to process client requests (e.g., portions of a computation-based scientific research or mathematical project). Another example of a parallel application may be a data mining application. In the case of a parallel application, a scheduler typically controls the flow of the client requests to the individual servers of the server cluster.
It is known that computing systems that host/run such applications may be distributed across a network (e.g., the Internet or an intranet) in accordance with a so-called “grid” distribution approach. As is known, a grid is a type of parallel and distributed system that is separated into multiple administrative domains, wherein each domain may have a distinct and separate set of administrative policies by which its resources operate. Organizations may typically utilize multiple independently-operated administrative domains that reside at geographically distributed sites. However, conventional computing system service approaches are typically formulated to use only server resources in a single administrative domain, and thus do not address issues involving multiple administrative domains.
Furthermore, conventional computing system service approaches typically fail to adequately ensure compliance with the contractual terms agreed upon between the owner of the application and the service provider hosting the application. Such terms are typically set forth in a so-called “service level agreement” (SLA).
Still further, conventional computing system service approaches typically focus only on distributed allocation of server resources (i.e., the computing resources themselves) and thus fail to take into account network resource issues. Network resource issues may include, for example, issues relating to network elements such as local area networks (LAN) with switches, firewalls, virtual LANs (VLANs), and connectivity to wide area networks (WAN) with services such as virtual private networks (VPNs), route control, and quality-of-service. That is, besides computational resources (server resources), compliance with an SLA may hinge on network resource issues. This is not addressed by conventional computing system service approaches.
Accordingly, there is a need for techniques that provide network distribution and provisioning of applications, such as transactional applications and parallel applications, across multiple administrative domains that ensure compliance with SLAs.